<?php
/**
 * Representa um Chamado do Tipo Telefonico no Sistema
 */
class ChamadoTelefonico extends Chamado implements IObject {

    public function __construct($ArDados, &$tMysqli = false) {
        $this->IDCliente = $ArDados['IDCliente'];
        $this->IDSetor = $ArDados['IDSetor'];
        $this->StTitulo = $ArDados['StTitulo'];
        if(!empty($ArDados['TxMensagem'])) {
            $this->ArMensagens[0] = new Mensagem($ArDados['TxMensagem']);
        }
        $this->tMysqli = $tMysqli;
    }

    /**
     * @method  loadDataCreatedCall
     *
     * Carrega os dados padroes deste tipo de chamado quando ele for criado no
     * sistema para ser persistido
     *
     * @since   Abril de 2012
     * @return  void
     * @author  Richard Brandao <richardsbrandao@gmail.com>
     */
    public function loadDataCreatedCall() {
        $this->IDResponsavel = Dracosys::getLoggedUser()->getIDUsuario();
        $this->DtCriacao = now();
        $this->DtFechamento = now();
        $this->EnTipoChamado = 'TELEFONICO';
        $this->EnStatus = 'TELEFONICO';
        $this->EnPrioridade = 'FALSE';
        $this->EnAvaliacao = 'NAO AVALIADO';
    }
    /**
     * @method  loadDataCalled
     *
     * Carrega o chamado com base nas informacoes vindas do banco
     *
     * @param   Array   $ArDados    Dados vindos de uma consulta do banco de dados
     *
     * @since   Abril de 2012
     * @return  void
     * @author  Richard Brandao <richardsbrandao@gmail.com>
     */
    public function loadDataCalled($ArDados) {
        $this->IDResponsavel = $ArDados['IDResponsavel'];
        $this->IDChamado = $ArDados['IDChamado'];
        $this->DtCriacao = $ArDados['DtCriacao'];
        $this->DtFechamento = $ArDados['DtFechamento'];
        $this->EnTipoChamado = $ArDados['EnTipoChamado'];
        $this->EnStatus = $ArDados['EnStatus'];
    }

    /**
     * @method  setDefaultDataInAllMessages
     *
     * Seta as informacoes padroes em todas as mensagens carregadas nesse chamado
     *
     * @since   Abril de 2012
     * @return  void
     * @author  Richard Brandao <richardsbrandao@gmail.com>
     */
    public function setDefaultDataInAllMessages($IDChamado) {
        foreach($this->ArMensagens as &$Menssagem) {
            $Menssagem->setIdChamado($IDChamado);
            $Menssagem->setIDCliente($this->IDCliente);
            $Menssagem->setIDUsuario($this->IDResponsavel);
            $Menssagem->loadDefaultPhoneCalledData();
        }
    }

    public function equals(IObject $Object) {
        return $Object->getIDChamado() == $this->IDChamado;
    }

}

?>
